home *** CD-ROM | disk | FTP | other *** search
/ Amiga Tools 2 / Amiga Tools 2.iso / tools / packer / ha0999beta / src / haio.h < prev    next >
C/C++ Source or Header  |  1995-03-09  |  2KB  |  44 lines

  1. /***********************************************************************
  2.   This file is part of HA, a general purpose file archiver.
  3.   Copyright (C) 1995 Harri Hirvola
  4.  
  5.   This program is free software; you can redistribute it and/or modify
  6.   it under the terms of the GNU General Public License as published by
  7.   the Free Software Foundation; either version 2 of the License, or
  8.   (at your option) any later version.
  9.  
  10.   This program is distributed in the hope that it will be useful,
  11.   but WITHOUT ANY WARRANTY; without even the implied warranty of
  12.   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13.   GNU General Public License for more details.
  14.  
  15.   You should have received a copy of the GNU General Public License
  16.   along with this program; if not, write to the Free Software
  17.   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  18. ************************************************************************
  19.     HA I/O routines
  20. ***********************************************************************/
  21.  
  22. #define BLOCKLEN     8192
  23.  
  24. extern unsigned char ib[],ob[];
  25. extern int ibl,ibf,obl;
  26. extern U32B icnt,ocnt,totalsize;
  27.  
  28. #define getbyte() (ibl>0?(--ibl,ib[ibf++]):(bread(),(ibl>0?--ibl,ib[ibf++]:-1)))
  29. #define putbyte(c) {ob[obl++]=(c);if(obl==BLOCKLEN)bwrite();}
  30. #define flush() bwrite()
  31.  
  32. #define CRCCALC        1    /* flag to setinput/setoutput */
  33. #define PROGDISP    2    /* flog to setinput/setoutput */
  34.  
  35. extern void (*outspecial)(unsigned char *obuf, unsigned oblen);
  36. extern unsigned (*inspecial)(unsigned char *ibuf, unsigned iblen);
  37.  
  38. void setoutput(int fh, int mode, char *name);
  39. void setinput(int fh, int mode, char *name);
  40. U32B getcrc(void);
  41. void clearcrc(void);
  42. void bread(void);
  43. void bwrite(void);
  44.